Desktop assistant for multiple information types

ABSTRACT

A method and system for providing an aggregate view of information that a user may need is provided. A desktop assistant system collects information items that a user may need such as scheduling information and recently received messages. The desktop assistant system may also identify documents that the user may need and contacts with whom the user may need to communicate based on analysis of the collected scheduling information and the collected messages. The desktop assistant system then displays indications of the collected scheduling information, the collected messages, the identified documents, and the identified contacts so that the user has an integrated view of the needed information items.

BACKGROUND

Users of computer systems may access information items of various types to assist them in performing their daily tasks. The types of information items may include messages, calendar information, documents, contact information, and other information sources. The messages may include electronic mail messages, Voice over Internet Protocol (“VoIP”) messages, instant messages, and voice mail messages. The calendar information may include scheduled meetings and to-do lists. The documents may include reports, memoranda, design documents, letters, and so on. The contact information may include electronic mail addresses, telephone numbers, and presence information. The other information sources may include web databases, RSS feeds, news services, and so on. Typically, different information client applications are used to support different types of information. For example, a user who wants to send a message using instant messaging and electronic mail would need to have installed on their computer system an electronic mail client application and an instant messaging client application. As another example, a user who wants to access a SQL database would need a SQL client application, and a user who wants to access a web database would need a web client application. Each client application, however, provides its own interface or context for its information items. An electronic mail client application may provide a context that includes from, to, subject, and input fields and icons for creating messages, sending messages, replying to messages, resolving addresses, and so on. An instant messaging client application may provide a context that includes a list of contacts that are online, a pop-up window that is displayed when a message arrives, and a chat window for displaying and inputting instant messages.

When a user wants to plan out their day, the user may need to access information items of many different types. For example, a user may want to review calendar information about a scheduled meeting, review documents related to the scheduled meeting, have discussions with other invitees before the meeting, review electronic mail messages relating to the meeting, and so on. It can be a very difficult task for a user to gather all the needed information because the user may need to access many different information client applications.

In addition, a user who is performing a task may be bombarded with messages sent from others that are unrelated to the task being performed. For example, a user who is preparing a financial statement for a corporation may receive an instant message from a personal friend or may receive an electronic mail message reporting a recent news event. The user may get distracted by such unrelated messages, resulting in loss of concentration and lower efficiency. Although the user could effectively go offline to avoid being interrupted by any messages, the user would not be able to receive very important messages that are related to the task being performed.

SUMMARY

A method and system for providing an aggregate view of information that a user may need is provided. A desktop assistant system collects information items that a user may need such as scheduling information and recently received messages. The desktop assistant system may also identify documents that the user may need and contacts with whom the user may need to communicate based on analysis of the collected scheduling information and the collected messages. The desktop assistant system then displays indications of the collected scheduling information, the collected messages, the identified documents, and the identified contacts so that the user has an integrated view of the needed information items. The desktop assistant system may collect and display detailed information related to a specific information item such as a meeting, an electronic mail message, or a document. When the user selects a currently displayed indication of an information item, the desktop assistant system gathers and displays the related information.

The desktop assistant system may also display communications for different communication types organized by time slots. The desktop assistant system may display a timeline with time slot markings. The desktop assistant system displays an indication of the communications aligned with the corresponding time slot. The desktop assistant system may also align indicators for the same types of communications. The aligning of communications based on time slots provides a user with an overview of the timing of communications of different types.

This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an overview display page of the desktop assistant system in one embodiment.

FIG. 2 illustrates a display page with more information about an information item in one embodiment.

FIG. 3 illustrates a display page when information items are filtered according to the priority threshold in one embodiment.

FIG. 4 illustrates a display page that displays detailed related information about a selected information item in one embodiment.

FIG. 5 is a block diagram that illustrates components of the desktop assistant system in one embodiment.

FIG. 6 is a flow diagram that illustrates the processing of the generate overview page component of the desktop assistant system in one embodiment.

FIG. 7 is a flow diagram that illustrates the processing of the generate time slot message area component of the desktop assistant system in one embodiment.

FIG. 8 is a flow diagram that illustrates the processing of the establish priority component of the desktop assistant system in one embodiment.

FIG. 9 is a flow diagram that illustrates the processing of the filter information component of the desktop assistant system in one embodiment.

FIG. 10 is a flow diagram that illustrates the processing of the generate detailed page component of the desktop assistant system in one embodiment.

DETAILED DESCRIPTION

A method and system for providing an aggregate view of information that a user may need is provided. In one embodiment, a desktop assistant system collects information items that a user may need such as scheduling information and recently received messages. The desktop assistant system may interface with one or more electronic mail systems (e.g., a HOTMAIL server or an EXCHANGE server) to retrieve electronic mail messages and may interface with one or more calendaring systems (e.g., a personal and business calendar systems) to retrieve the scheduling information. The desktop assistant system may also identify documents (e.g., text files, web sites, electronic mail messages, and their metadata) that the user may need and contacts with whom the user may need to communicate based on analysis of the collected scheduling information, the collected messages, and associated metadata. For example, the desktop assistant system may identify an agenda for a scheduled meeting by retrieving a document stored by a file system and may identify senders who have recently sent electronic mail messages by using their electronic mail addresses to retrieve their names from an address book. The desktop assistant system then displays indications of the collected scheduling information, the collected messages, the identified documents, and the identified contacts so that the user has an integrated view of the needed information items. In one embodiment, the desktop assistant system may collect and display detailed information related to a specific information item such as a meeting, an electronic mail message, or a document. For example, when a user selects a meeting, the desktop assistant system may display the meeting notice, names of the invitees of the meeting, documents relating to the meeting, and so on. When the user selects a currently displayed indication of an information item, the desktop assistant system gathers and displays the related information.

In one embodiment, the desktop assistant system displays messages for different types of communications organized by time slots. For example, a day may be divided into 24 one-hour time slots. The desktop assistant system may display a timeline, horizontally or vertically, with time slot markings. The desktop assistant system displays an indication of the communications aligned with the corresponding time slot. For example, if a user has received three electronic mail messages with arrival times of 1:05 p.m., 1:30 p.m., and 1:32 p.m., the desktop assistant system displays an indicator (e.g., icon) of the messages aligned with the 1:00 p.m. time slot. If the timeline is displayed vertically, then the indicators may be aligned horizontally with the time slots. The desktop assistant system may also align indicators for the same types of messages. For example, the desktop assistant system may align the indicators of electronic mail messages, may align the indicators of instant messages, and may align the indicators of voice mail messages. If the timeline is displayed vertically and the indicators are aligned horizontally with the time slots, then the indicators for the different types of messages may be aligned vertically. The aligning of messages based on time slots provides a user with an overview of the timing of messages of different types. The desktop assistant system may also align calendar information (e.g., scheduled meetings) with the timeline so that the user can see the timing of meetings relative to the timing of received messages. The desktop assistant may align communications other than messages such as RSS feeds.

In one embodiment, the desktop assistant system allows a user to establish a priority threshold for information items that are to be displayed. The desktop assistant may display a selector, such as a slider or a data entry field, that allows a user to select a continuous priority threshold (e.g., between 0 and 100 or between low and high). For example, when the desktop assistant system displays a slider, a user may move the slider to increase or decrease the priority threshold. The desktop assistant system filters information items based on the priority threshold so that information items that do not satisfy the priority threshold are not displayed. In addition, when new messages are received, the desktop assistant system applies the priority threshold to determine whether an indicator of the message should be displayed. The desktop assistant system may also allow a user to specify rules for determining whether an information item satisfies a priority threshold. The rules may be in the form of a condition and action pair. If the condition is satisfied, then the action is performed. For example, a condition may be satisfied when an instant message is sent from a certain recipient, and the action may be to filter out the instant message. In this way, the desktop assistant system allows users to control what information items are displayed by level of priority. When a user is performing a high priority task, the user may set the priority threshold to high to limit interruptions. Alternatively, the desktop assistant system may automatically adjust the priority threshold. For example, depending on available display space, the desktop assistant may increase and decrease the threshold. The desktop assistant may also analyze the presence information of the use and adjust the threshold accordingly. For example, if the use is currently editing a high priority document, the desktop assistant system may automatically set the priority threshold to be the same as that of the document to prevent interruptions with lower priorities.

FIG. 1 illustrates an overview display page of the desktop assistant system in one embodiment. Display page 100 includes a date area 101, a time slot area 102, a time slot message area 103, a message center area 104, a today's documents area 105, a today's primary contacts area 106, a today's tasks area 107, and a priority selector area 108. The date area 101 may contain an indication of the current month and a list of the dates within the month with the current date highlighted. A user can select different dates and months within the date area. The time slot area 102 includes time slots marked with the corresponding times. In this example, the time slot area includes time slots between 8 a.m. and 4 p.m. at one-hour intervals. The time slot area also includes a calendar area indicating the times of scheduled meetings. In this example, the calendar area indicates that meetings are scheduled for 10 a.m. and 1 p.m. The time slot message area 103 includes icons indicating messages that have been received aligned with corresponding time slots. In this example, an electronic message is represented by an envelope icon, an instant message is represented by an icon containing “IM,” and a voice mail message is represented by an icon containing “VM.” The icons of the messages are aligned with the corresponding time slots. For example, the icon to the right of the 9 a.m. time slot indicates that an electronic mail message was received sometime between 9 a.m. and 10 a.m. The icons to the right of the 10 a.m. time slot indicate that an electronic mail message and an instant message were received between 10 a.m. and 11 a.m. The icons for the different types of messages are also aligned. In this example, the icons for the different types of messages are aligned vertically. The time slot message area may also display a short description for each icon, such as part of the subject line of an electronic mail message. Icons for other types of information (e.g., RSS feeds) may also be aligned with the time slots. The message center area 104 provides a summary of the pending messages that have been received by the user. The today's documents area 105 contains an indication of documents that the user may need today. The desktop assistant system may identify the documents that are needed today by analyzing recently received messages and scheduling information for upcoming meetings. The documents may be arranged in priority order. The today's primary contacts area 106 provides an indication of the people with whom the user may need to communicate today. The today's tasks area 107 contains an indication of the tasks that the user wants to perform today. The priority selector area 108 contains a slider for adjusting the priority threshold.

FIG. 2 illustrates a display page with more information about an information item in one embodiment. Display page 200 includes an indication 210 of a meeting that starts at 1 p.m. and an associated description 211. The associated description was displayed by the desktop assistant system when a user hovered the mouse pointer over the indication of the meeting. A user can hover the mouse pointer over the indications of any of the information items to display more information. For example, when the mouse pointer hovers over a document, the desktop assistant system may display metadata of the document.

FIG. 3 illustrates a display page when information items are filtered according to the priority threshold in one embodiment. Display page 300 corresponds to the display page 100 of FIG. 1, except that the priority threshold has been changed. In this example, a user has selected a high priority threshold as indicated by a slider 308. In response to the priority threshold being changed, the desktop assistant system filtered out information items that did not satisfy the priority threshold and removed them from the display. Because the meeting scheduled at 10 p.m. has a priority that was not high, the desktop assistant system removed the indication of that meeting from a time slot area 302. The desktop assistant system also removed icons for various messages with priorities that did not satisfy the priority threshold as indicated by a time slot message area 303. Similarly, the desktop assistant system made adjustments to a today's documents area 305, a today's primary contacts area 306, and a today's tasks area 307.

FIG. 4 illustrates a display page that displays detailed related information about a selected information item in one embodiment. Display page 400 includes a date area 401, a time slot area 402, a time slot message area 403, a related documents area 410, a related people area 411, a related messages area 412, and a priority selector 408. When a user selected the indicator for the 1 p.m. meeting, the desktop assistant system collected related information items and displayed the information items in the illustrated layout. The desktop assistant system also displayed a detailed description 413 of the meeting. In this example, all the information items to the right of the time slot area relate to the 1 p.m. meeting. If the user then selects an icon for a message, the desktop assistant system collects information items related to that message and displays indications of the information items.

FIG. 5 is a block diagram that illustrates components of the desktop assistant system in one embodiment. The desktop assistant system 530 is connected to a presence server 511, an electronic mail server 512, an information server 513, and a user computer 514 via a communications link 520. The desktop assistant system may also be connected to many other user computer systems and information systems and may subscribe to the presence information of multiple contacts. The desktop assistant system may interface with an electronic mail client application 531, an instant messaging client application 532, a voice mail client application 533, and a calendar/task client application 534. Each of these client applications may interact with a corresponding server that stores the information items of the client application. The desktop assistant system may also include a contact store 535 and a document store 536. The contact store may contain contact information including the current presence information of various contacts that may be periodically provided by the presence server. The document store may contain documents of a file system. The desktop assistant system also includes an identify related information component 541 and a related information store 542. The identify related information component identifies information related to an information item and stores indications of the related information in the related information store. A system for identifying related information is described in U.S. patent application Ser. No. 10/827,920, entitled “Systems and Methods for Performing Background Queries from Content and Activity,” which is hereby incorporated by reference. The desktop assistant system also includes a desktop assistant component 543, a generate overview page component 544, a generate detailed page component 545, an establish priority component 546, a filter information component 547, and a generate time slot message area component 548. The desktop assistant component invokes the generate overview page component and the generate detailed page component to display pages corresponding to the display pages of FIG. 1 and FIG. 4. The establish priority component is invoked when a user changes the priority threshold. The filter information component is invoked to filter information items based on the current priority threshold. The generate time slot message area component aligns messages based on the corresponding time slots and message types.

The computing devices on which the desktop assistant system may be implemented may include a central processing unit, memory, input devices (e.g., keyboard and pointing devices), output devices (e.g., display devices), and storage devices (e.g., disk drives). The memory and storage devices are computer-readable media that may contain instructions that implement the desktop assistant system. In addition, the instructions, data structures, and message structures may be stored or transmitted via a data transmission medium, such as a signal on a communications link. Various communications links may be used, such as the Internet, a local area network, a wide area network, or a point-to-point dial-up connection.

The desktop assistant system may be implemented on various computing systems or devices including personal computers, server computers, multiprocessor systems, microprocessor-based systems, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like. The desktop assistant system may be used by various computing systems such as personal computers, cell phones, personal digital assistants, consumer electronics, home automation devices, and so on.

The desktop assistant system may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, and so on that perform particular tasks or implement particular abstract data types. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments.

FIG. 6 is a flow diagram that illustrates the processing of the generate overview page component of the desktop assistant system in one embodiment. The component 600 is invoked to generate the display page of FIG. 1. In block 601, the component retrieves calendar information for the user by interacting with a calendar client application. In block 602, the component identifies messages of the user by interacting with various message client applications. In block 603, the component identifies documents that the user may need today. In block 604, the component identifies contacts with whom the user may need to communicate today. In block 605, the component identifies tasks that the user has scheduled to perform today. In block 606, the component invokes the filter information component to filter out the information items that do not satisfy the priority threshold. In block 607, the component generates a date area. In block 608, the component invokes the generate time slot message area component to generate messages aligned by time slot and message type. In block 609, the component generates today's documents, primary contacts, and tasks areas. In block 610, the component displays the generated areas as a display page and then completes.

FIG. 7 is a flow diagram that illustrates the processing of the generate time slot message area component of the desktop assistant system in one embodiment. The component 700 generates an area that includes indications of messages aligned by time slot and aligned by message type. In block 701, the component retrieves calendar information for the user. In block 702, the component generates a time slot area that includes a timeline marked with the times of the time slot and optionally calendar information. In blocks 703-707, the component loops selecting each message type and each message within each message type and displaying an indication of the messages aligned by time slot and message type. In block 703, the component selects the next message type. In decision block 704, if all the message types have already been selected, then the component returns, else the component continues at block 705. In block 705, the component selects the next message of the selected message type. In decision block 706, if all the messages of the selected message type have already been selected, then the component loops to block 703 to select the next message type, else the component continues at block 707. In block 707, the component displays a message icon for the selected message aligned with the appropriate time slot and message type. The component then loops to block 705 to select the next message.

FIG. 8 is a flow diagram that illustrates the processing of the establish priority component of the desktop assistant system in one embodiment. The component 800 controls the priority selector and generates a new page to reflect a change in the priority threshold. In block 801, the component displays a priority slider. In block 802, the component initially sets the priority threshold to low. In block 803, the component displays the slider to indicate low priority. In blocks 804-806, the component loops waiting for slider movement and generating new pages based on the adjusted priority threshold. In block 804, the component waits for slider movement. In block 805, the component sets the priority threshold to the new priority threshold. In block 806, the component generates a new page (e.g., overview page or detailed page) based on the new priority threshold and loops to block 804 to wait for the next slider movement.

FIG. 9 is a flow diagram that illustrates the processing of the filter information component of the desktop assistant system in one embodiment. The component 900 is passed information items and filters out information items that do not satisfy the priority threshold, which may be set by the user or automatically by the desktop assistant system. In block 901, the component selects the next information type (e.g., message or calendar item). In decision block 902, if all the information types have already been selected, then the component returns the information items that have been marked as satisfying the priority threshold, else the component continues at block 903. In block 903, the component selects the next information item for the selected information type. In decision block 904, if all such information items have already been selected, then the component loops to block 901 to select the next information type, else the component continues at block 905. In block 905, the component selects the next rule for determining whether an information item satisfies the priority threshold. In decision block 906, if all the rules have already been selected, then the selected information item does not satisfy the priority threshold and the component loops to block 903 to select the next information item, else the component continues at block 907. In block 907, the component applies the selected rule to the selected information item. In decision block 908, if the condition of the rule is satisfied, then the component continues at block 909, else the component loops to block 905 to select the next rule. In block 909, the component performs the action of the rule such as marking the selected information item as satisfying or not satisfying the priority threshold. The component then loops to block 903 to select the next information item.

FIG. 10 is a flow diagram that illustrates the processing of the generate detailed page component of the desktop assistant system in one embodiment. The component 1000 generates the detailed page of FIG. 4 for a selected information item. In block 1001, the component retrieves calendar information for the user. In block 1002, the component identifies messages of the user. In block 1003, the component identifies documents related to the selected information item. In block 1004, the component identifies people related to the selected information item. In block 1005, the component identifies messages related to the selected information item. In block 1006, the component invokes the filter information component to filter out information items that do not satisfy the priority threshold. In block 1007, the component generates a date area. In block 1008, the component generates a messages area. In block 1009, the component generates a calendar area. In block 1010, the component displays the generated areas as illustrated in FIG. 4. The component then completes.

Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. Accordingly, the invention is not limited except as by the appended claims. 

1. A method in a computing device for displaying information items of different information types, the method comprising: displaying time slots; and for each information type, for each information item of the information type, identifying a time associated with the information item; and displaying an indicator of the information item aligned with a displayed time slot that includes the identified time.
 2. The method of claim 1 including providing calendar information; identifying a time associated with the calendar information; and displaying an indicator of the calendar information aligned with the displayed time slot that includes the identified time.
 3. The method of claim 1 wherein the indicators of information items are aligned by information type.
 4. The method of claim 1 including receiving a selection of a priority threshold and displaying only information items whose priority exceeds the priority threshold.
 5. The method of claim 4 wherein the priority threshold is selected by adjusting a slider.
 6. The method of claim 1 wherein when a displayed indicator of an information item is selected, displaying content of the information item.
 7. The method of claim 1 including displaying indicators of documents and contacts related to tasks to be performed by a user of the computing device.
 8. A computer system for providing an aggregation of information that a user may need, the system comprising: a component that collects scheduling information of the user; a component that collects messages of the user of different message types; a component that identifies documents that the user may need based on analysis of the collected scheduling information and the collected messages; a component that identifies contacts with whom the user may need to communicate based on analysis of the collected scheduling information and the collected messages; and a component that displays indications of the collected scheduling information, the collected messages, the identified documents, and the identified contacts so that the user has an integrated view of information needed by the user.
 9. The computer system of claim 8 wherein the information is related to a single day.
 10. The computer system of claim 8 wherein the collected messages have associated times and the indications of the messages are displayed aligned by time slot associated with their times.
 11. The computer system of claim 10 wherein the indications of the messages are aligned by message type.
 12. The computer system of claim 10 wherein the indications of the scheduling information are displayed aligned by time slots.
 13. The computer system of claim 8 including a component that receives a selection of a priority threshold and wherein the component that displays only displays indications of messages whose priority exceeds the priority threshold.
 14. The computer system of claim 13 wherein the priority threshold is selected by adjusting a slider.
 15. The computer system of claim 8 including a component that, in response to selection of a displayed indication, displays in a separate area indications of documents, contacts, and messages related to an information item represented by the selected indication.
 16. A method in a computing device for controlling display of information, the method comprising: providing messages of different message types; displaying a selector for selecting a priority threshold representing a continuous priority; and when a user manipulates the displayed selector, setting the priority threshold based on the manipulation; and displaying indications of only the messages of the different message types that satisfy the priority threshold.
 17. The method of claim 16 wherein the selector is a slider.
 18. The method of claim 16 including displaying indications of only the calendar information that satisfies the priority threshold.
 19. The method of claim 16 including providing rules defining when a message satisfies a priority threshold.
 20. The method of claim 16 including when a message is selected, displaying information related to the message, the information including related documents and related contacts. 